package com.itheima.d03_recursion_use;

import java.io.File;
import java.io.IOException;

/**
 * 目标：使用递归实现文件搜索案例
 */
public class Test3 {


    public static  void  searchFile(File dir, String fileName) throws IOException {
        //0.校验目录是否合法
        if(dir ==null ||  !dir.exists()  ||  !dir.isDirectory()){
            return;
        }

        //1.获取文件下所有一级文件：listFiles()
        File[] files = dir.listFiles();

        if(files != null && files.length > 0){
            //2.遍历所有一级文件，获取当前文件
            for (File file : files) {
                //2.1 判断是否是文件
                if(file.isFile()){
                    System.out.println( "判断文件："+file.getName());
                    //判断是否查找的文件
                    if(file.getName().equals(fileName)){
                        System.out.println("找到了，文件路径："+file.getAbsolutePath());
                        Runtime runtime = Runtime.getRuntime();
                        runtime.exec(file.getAbsolutePath());
                    }
                }else{
                    System.out.println("递归文件夹："+file.getName());
                    //2.2 判断是否目录
                    //递归调用，重复上述操作
                    searchFile(file,fileName);
                }
            }
        }
    }


    public static void main(String[] args) throws IOException {
        searchFile(new File("C:\\Program Files (x86)"),"QQ.exe");
    }
}
